Copyright: Copyright © Christophe Dubourg
Citation: If you like and use my program, please register !


Contents

TreeDiff  1.0

Visual Directory/Archive comparison

Shareware program
Copyright 1996, Christophe Dubourg

Table of contents

Purpose	Remarks
Features	Disclaimer
Using TreeDiff	Distribution files
Reading the saved files
Requirements	Registration/Author
Limits	Registration form
Syntax
Menus reference	You are french ? read this

How to get the latest version


Options|Display

Display options

See also : Options dialog box

Color set :

Windows : use standard colors, with white background.
DOS : use a blue background, like nice DOS Turbo Visions programs used to be !

Date format :

The date display format is automatically detected by TreeDiff. However, you can still change it using these options buttons.


Legend

The legend of TreeDiff

Differences in TreeDiff are shown using colors. This is just because colors are much easier to differentiate, rather than codes or symbols.

Here is the explanation of the colors used for comparison, assuming you use the Windows color set (an other set of colors, called the DOS color set, is available in the Options|Display dialog box) :

Gray on white	Normal color, the items are matching and are identical.

This color is used for name, date and size, and directory.

Black on Red	Files are different. If CRC check is active, files are binary identical.
 	Otherwise, they are different for an other reason : size or date don't match.
This color is used for names only.

Black on Cyan	Either date is newer or size is bigger.
This color is used for date and size.

Black on Magenta	Either date is older or size is smaller.
This color is used for date and size.

Black on yellow	Inserted files.
This color is used for name, date and size.

Black on green	Deleted files.
This color is used for name, date and size.


P_Wildcards
Wildcards are the standard DOS and Windows wildcards :

Example : *.EXE, ABC*.TXT


Reference

Menu reference

Main menu options
Popup menu options

Main menu options :

File|Open New directory... : Specify the NEW directory to compare, or the directory for making a LIST.

File|Open New archive or list... : Specify the NEW archive or list to compare, or for making a LIST.

File|Open Old directory... : Specify the OLD directory to compare to the NEW set of files.

File|Open Old archive or list... : Specify the OLD archive or list to compare to the NEW set of files.

File|Save Diff file : Saves the files information to a text file, either Side-by-side or Single column

ShortCut : Ctrl+S.

File|Save New list... : Once you made a list from a set of files or once you made a comparison, you can save the NEW set of files as a LIST using this menu option.

File|Save New batch file... : Once you made a list from a set of files or once you made a comparison, you can save the NEW set of files as a BATCH file using this menu option. See also Options|Batch

File|Save Old list... : Once you made a comparison, you can save the OLD set of files as a LIST using this menu option.

File|Save Old batch file... : Once you made a comparison, you can save the OLD set of files as a BATCH file using this menu option. See also Options|Batch

File|Quit : Quits TreeDiff. No confirmation, except if a list is in memory and has not been saved yet.

ShortCut : Alt+F4.

Action|Compare (do diff) : Actually performs the comparison : reads the sets of files and stores information in memory. Displays the results upon completion of the process.

Action|Generate list : Read the NEW set of files and stores all information in memory, then displays the list on screen so you can save it, etc.

Action|Reset Diff : Clear from memory all the comparison information, so you can change the options and do a comparison with the same sets of files, without having to re-specify them.

Edit|Copy : Copies the list of full filenames from the selected cells into the clipboard, as text.

Edit|Search... : Prompts you for a string to search within the filenames in memory. Moves the cursor on the line of the first occurence found.

Edit|Search next : Go to the next line where the filename matches the search text.

Edit|Get informations : Displays an information dialog concerning the first selected file.

Edit|File operations : Displays a dialog allowing you to perform file operations on the files you selected with the mouse. You can COPY files, MOVE files, or DELETE files from the selected directory to a directory of you choice. The default target directory is the directory of the other set of files, if it is a directory. Otherwise there is no default directory - you'll have to specify one.

Options|Scanning : These are the options that apply to the scanning process. You must set these options before starting a comparison. See also Edit|Reset.

Options|User : Displays the User options dialog box, that let you specify personal general options.

Options|Batch : Displays the Batch options dialog box, that allows you to specify how you want the batch file to be created.

Options|Saving : Displays the Saving options dialog box. Specify how you want the saved files to be created.

Options|Display : Displays the Display options dialog box. Let you choose the "look" of displayed results.

Options|Filters : Show a dialog box to let you specify the different filtering options, (Exclude and Ignore) and where these filters apply (to screen only, or Saved file also).
These options match by default the command line options, if you have specified some.

ShortCut : Alt+T.

Help|Legend : Brings a help screen explaining the meaning of each color of the scrolling window.

Once all the files have been read in memory, the output is displayed in a scrolling window, on screen, with colors that show where the differences are.
Each color have a meaning. Check it now, look at the Legend.help screen.

Help|Status : Display the global status of the latest comparison.

ShortCut : Alt+S.

Help|How to register : Information on the registration process. How to contact the author, etc.

Help|About : Program and version information (and more, if you can find how :-))

Popup menu options

This popup menu, that appears when you right-click when the files are displayed in the scrolling window, displays several operations you can perform on currently selected file (the file belox the mouse cursor), or the currently selected files (highlighted files).

Informations... : Displays an Information dialog about the file that is currently under the mouse cursor.

Search... : Prompts you for a string to search within the filenames in memory. Moves the cursor on the line of the first occurence found. Equivalent to Edit|Search.

Copy to clipboard : Copies the list of full filenames from the selected cells into the clipboard, as text. Equivalent to Edit|Copy.

File operations... : Displays a dialog allowing you to perform file operations on the files you selected with the mouse. You can COPY files, MOVE files, or DELETE files from the selected directory to a directory of you choice. The default target directory is the directory of the other set of files, if it is a directory. Otherwise there is no default directory - you'll have to specify one.

Equivalent to Edit|File operations.


Syntax

The simplest form is to create an icon pointing to the main executable. Like this :

TREEDIFF.EXE

Command line parameters are optional.

However, there are some cases where you'll prefer to run TreeDiff using command line parameters, instead of navigating in the menus and dialogs. This is specially useful if you use TreeDiff from a DOS shell.

Here is the simplest syntax diagram :

TREEDIFF.EXE  <new set>  <Old set>

or, more complete :

TREEDIFF.EXE  <New set>  [<Old set>] [options] [Wildcards]

Note : As you can see in this diagram, there is a NEW set of files, and an OLD set of files. (to indicate during the comparison, if files are older or newer than other files, for instance). See the topic on 'Using TreeDiff' for more explanation on this.

The <New set> and <Old set> parameters are needed (not optional).

The order in which you specify the New/Old pair is important. It will make the difference between a 'Deleted' file or 'Inserted' file, or a 'Newer' and 'Older', or 'Bigger' and 'Smaller'. (This will only affect the output result and make it simpler for you to read)

To specify that a set of files is a LIST (not an archive or a directory), just put a '@' before its name, of name it with a .LST extension, like this :

TREEDIFF MyList.LST MyOldDir /R
or	TREEDIFF @MyList.LST MyOldDir /R

This way, you compare MYLIST.LST (which is a list) to MYOLDDIR (which is a directory).

Note:

The NEW set of files must be specified first !

Then, you may specify wildcards if you need. Wildcards come after the new and old set on command line.

a. Wildcards

The wildcards may be used to restrict the files compared inside the directory or archive. (for both the new and old sets, because it would be unlogical to have two different wildcards).
The regular DOS wildcards are allowed.

b. Options

The options may be specified anywhere on the command line, and are not case sensitive. The options are (in alphabetical order) :

/a  :  Automatic mode.

By default, once the files have been read, the result of comparison is shown in a window, on screen, and you can browse this window, using dialogs to specify such things as filters, video options, save options, and so on.

In Automatic mode, TreeDiff output the result to the regular output file, and immediatly exits, without any user action. This allow the use of TreeDiff in batch files, to redirect output into a file or to a printer, or pipe to another program.

Example :

You can use 'TREEDIFF FILE.ZIP C:\DATA /A /OC:\TEMP\TEST.TMP' to directly send the result to C:\TEMP\TEST.TMP..

Note : You can also save the result of comparison in a file, from the menu : use File|Save.

/b  :  Batch output.

Only the file names are saved. (no diff info). Use this option to select a set of files (the Newer files, for instance) and to save the resulting list. You may re-use this list as input with an other program. (to update an archive with new files, or delete files that are already in an archive or on a backup disk, for example)
You can define more options for batch files using the Options|Batch dialog.

/c  :  Country flag override.

The Date format, used for display and for saved files, is retrieved from Windows's initialization file WIN.INI (section [intl], topic 'iDate'). If the date format is not well recognized, or if you prefer an other, you may use this option to force the date format to use for display. Here are the 3 possible formats :

/C0	USA date format	(MM/DD/YY)
/C1	EUROPEAN date format  	(DD/MM/YY)
/C2	JAPANESE date format	(YY/MM/DD)

You can also change this using the Options|Display dialog box.

/d  :  Differences only.

Once the two sets of files are compared, the output will only show the files that are different between the 2 sets. (ANY difference : date, size, crc, name...)
By default, all the files of the two sets are displayed. This is equivalent to /X= (Exclude Equals)

You can use the Options|Filter dialog to change this, after comparison.

/e[x]  :  Error skip

If an error occurs during the scanning process, while opening a file for instance, TreeDiff prompts you with a dialog message, for you to choose an action between skipping the file, trying again, or cancelling the whole process. The '/e' option avoid the dialog message, choosing automatically to skip the file wich cannot be processed. The file will be included in comparison, but with a NULL CRC. That means that it will probably appear as 'different' in its status.
If you don't want that the error files appear in the comparison, use /ex ('x' stands for eXclude files with errors).
You can also set this options using the Options|Scanning dialog box.

/f[hsd]   :  Files atributes

The default is to scan only normal files and normal directories - but you can, with this option, tell TreeDiff to scan Hidden files and/or System files and/or Hidden directories. Any combination of S,H,D can be used after /F.
H is for Hidden files
S is for System files
D is for Hidden directories

You can also set this options using the Options|Scanning dialog box.

Example : TreeDiff NEW.ZIP C:\OLDDIR /FHS
/FHS tells TreeDiff to scan Hidden (H) and System (S) files.

Example : TreeDiff NEW.ZIP C:\OLDDIR /FHSD
/FSHD tells TreeDiff to scan Hidden files, System files, and to scan also hidden directories, like Windows 95's hidden system directories.

/h   :  Help !

This display help screens, plus registration information screen.

At any time in TreeDiff you can click on the Help button, you'll get the help screen that apply to the area you are in TreeDiff.

/i   :  Ignore Filter

You can ignore the differences matching certain criterias. These criteria must immediately follow the /i switch.

The letters that can be used are (in any order) :

            c - Ignore the CRC differences.

            d - Ignore Date differences.

            s - Ignore Size differences.

Example : TREEDIFF NEWFILE.ARJ C:\DATA /id

The output will ignore date difference in comparisons. (/id = Ignore Date differences)
See also the Options|Filters dialog box.

/l   :  Generate a list
/l[label] : Use the specified label for list

With this option turned on, you don't compare two sets of files, you just generate a list from ONE set of files, that can later be used to compare with... an other listing, or an other set of files. This allows you to gain a lot of time if you want to compare one set of files with several sets of files. (TreeDiff, when using a list, don't have to scan a disk for names, sizes, dates, and CRC so it's incredibly FAST !)

When you generate a list, TreeDiff obtains the maximum information that comes from source files, as explained below.

You can specify a label name for the list, which will be included in the output file. This is for information only.

If you don't specify any label, the default label will be the volume label if the source is a directory, the archive name if it's an archive, or the first label of the list if it's a previously saved list.

If the source is a directory, both 16-bit and 32-bit CRC are calculated and displayed in the output list. This allows you to later either compare with a 16-bit CRC archiver output, or a 32-bit CRC one. If the source is an archive, only the CRC used by the archiver can be obtained and saved in the list. Using the Automatic mode, the display is sent to a file, like this :

TREEDIFF EXAMPLES /A /L /OEXAMPLES.LST

or	TREEDIFF MYSAMPLES.ZIP /A /L /OSAMPLSET.1

or	TREEDIFF /A /LMyLabel DUMM.ZIP /ODIR1.LST

The first example outputs a list from the EXAMPLES directory, calculating both 16 and 32-bit CRC, to EXAMPLES.LST.

The second example outputs a list of the files contained in MYSAMPLES.ZIP - the CRC is 32-bit, since ZIP use 32-bit CRC.

The third example outputs a list from DUMM.ZIP, which use the 32-bit CRC. "MyLabel" will be the label of this list.

If you don't use Automatic mode, the list is whown on screen, along with all the calculated informations. You can look at it and save it from the menus (File|Save).

Several lists can be concatenated to form a list of lists. These big lists are treated like a single list when used in TreeDiff.

Example :

TREEDIFF DISK1 /A /L > MASTER.LST

TREEDIFF DISK2 /A /L >> MASTER.LST

TREEDIFF DISK3 /A /L >> MASTER.LST

TREEDIFF @MASTER.LST OLDMAST.ZOO

In this example, MASTER.LST contains the information of the files from the DISK1, DISK2 and DISK3 directories. This information is then compared to the ZOO archive called OLDMAST.ZOO.

/m   :  Matching files only.

The output will only show the files that are BOTH in the NEW and the OLD set of files. Files that are only in the NEW set or only in the OLD set (i.e., Deleted or Inserted files) will not be shown.
This is useful if you want to compare a set which is only a subset of the other. This is equivalent to /Xid (eXclude Inserted and Deleted)
See also the Options|Filters dialog.

/n   :  No Path in names

With this option, you can compare a full directory tree with a single directory. Useful to compare a ZIP file that have a directory tree stored inside of it, and a directory that

contains all the files without subdirectories.

Note : use this option with caution, since the path is barely stripped from each name. If two files have the same name in two different directories, the latest file information updates the data from the previous one in memory.

Example : to compare two directories, one containing the 'cut' product, and one containing the 'development' version, like :

New directory :	BUILD\*.*

Old directory :	CUT\DISK1\*.*

CUT\DISK2\*.*

CUT\DISK3\*.*    etc...

You can compare these 2 directories with the following command :

ZDIFF /r /n BUILD CUT

/o<filename>  :  Use this option to specify an output file for DIF or LST files.

This option is to be normally used with automatic mode.

Example : /oC:\TEMP\OUTPUT.TXT

/p   :  Pause.

With this option, ZDiff will prompt you before reading each set of file. The purpose of this is essentially while using floppies, or any other removable media (CD-ROMs, Syquest, IOMega's ZIP drive, etc...).

For example, if you need to compare two sets that are on two different floppies that have the same format, you'll have to insert one disk, read the files from it, and then the second disk. Maybe, you could compare 2 removable hard disks, or a hard disk and an archive, or whatever you want.

/q   :  Quick scan.

If a directory is involved in comparison, this permits to skip the CRC calculation on each file of this directory, in order to speed up the process. Of course, use this option with caution, since the comparison is then only made with TimeStamp and Size !

(two files can have the same date and time of last modification, the same size, and be binary different : using this option, they will be marked as 'Same'). However, if the timestamp or size is different, the difference will be shown.
You can also set this options using the Options|Scanning dialog box.

/r   :  Recurse directories.
/r-  :  Don't recurse directories.

By default, the subdirectories are not searched for files, either in archives or the directory file structures - except if you specified it in the Scanning options dialog box. This switch allows you to specify if you want to compare the full tree of directories or not. Use this swith to override the configuration you made in the Scanning options dialog box.

Note : if you don't specify the -r option, the filenames that contains a path in the archives are not treated at all. A warning is displayed if a path is found in an archive, if you have not used the -r option.

You can also set this options using the Options|Scanning dialog box.

/v    :  Verbose output.

This option generate an extra status information block in saved Diff files. This status report shows the number of files that are :

- Identical

- Different

- Newer

- Older

- Bigger

- Smaller

- Inserted

- Deleted

It gives a quick idea of the amount of differences between the two sets, without having to analyze the whole output.

You can also set this options using the Options|Saving dialog box.

/x    :  eXclude filter.

You can exclude from output the files that match a certain criteria. These criteria must immediatly follow the /X switch. The symbols that can be used are (in any order) :

i - exclude Inserted files.

d - exclude Deleted files.

n - exclude Newer files.

o - exclude Older files.

b - exclude Bigger files.

s - exclude Smaller files.

c - exclude CRC different files.

= - exclude Identical files.

Example :

TREEDIFF NEWFILE.ZIP C:\DATA /Xo=

Exclude from output the files that are Equals, and the Older files, too.

See also the Options|Filters dialog.

See also : Command line Examples.


Purpose

Purpose of TreeDiff

TreeDiff is a directory tree comparison utility. You compare 2 sets of files.

You can compare : Directories, Archives (ZIP files), and Lists - between each others.

The two sets of files are then both displayed in two synchronized windows, with colors, showing ANY differences found. Many options can be used to make the results fit your needs.

You can use TreeDif to catch instantly :

- Differences between two different versions of source files in a project.

- Differences between a backup and the actual files.
- The backup can be a ZIP file, no external program required.
- Differences between home and office hard disks.
- Keep a track of the evolution of multiple files.

Using it's unique LIST feature, you can take a snapshot of any directory structure, quickly, and use it as a basis for future comparisons. The LIST itself is a very small text file, that can be easily manipulated by you, using a word processing tool, or an automated program. LISTS contains all informations about all files you specified. LISTS are accessed VERY quickly ! (since the CRC for files doesn't have to be recalculated)

See Legend for a sample of what you get after a comparison is performed.

The advantage of TreeDiff, when comparing with archives, is that you don't need the unarchiver. The archive is directly read by TreeDiff, and processed like a directory tree.

For more information on the features of TreeDiff, see the section : Features of TreeDiff.


P_Options
Options are command line
parameters that are preceded by

a slash character ('/').

Example : TREEDIFF TEST.ZIP /L


P_Differences
Differences depend on several criterias :

Path and Name, CRC, Date and Time, and Size.

All these criterias can be filtered and/or ignored.


ReadingSavedDiff

Reading saved DIFF files (*.DIF)

When you save a diff file, using the File|Save Diff file menu option, or using the /O option with the /A Automatic option, you obtain a text file, listing all what you could see in the scrolling window (according to the filters you used).

This DIFF file is made of three parts :
- The header
- The body
- The footer

1. The header

The header is at the top of the text file, and contains several information, useful to the human eyes - these informations are not used by the program.

Informations displayed here are :
The files or directories that were compared or listed, the file pattern used, the options used, the filters applied, the date and time of generation.

2. The body

The body contains the list of files, along with all the difference information : In front of each filename, there are several status indicators. These can be "Same, Differs, CRC Differs, Bigger, Smaller, Newer, Older".

Almost all the terms are explicit enough so they don't need further explanation.
However, the terms "Same", "Differs" and "CRC differs" can be described :

First, remember that the (/Q) Quick mode allows you to compare files without CRC, just comparing names, date, time and size.

If you use the normal comparison (with CRC), TreeDiff relies on the CRC to say if two files are "Same" or "CRC Differs".

If you use the Quick mode (no CRC), then TreeDiff relies on date, time and size to say if 2 files are "Same" or "Differs". (Please note the difference between "CRC Differs" and "Differs")

This is why, using the normal mode (iwth CRC), you can obtain 2 files that are "Same", but with different dates. (here, the CRC is here to say that the files are really identical)

But in quick mode, if ever 2 files have 2 different dates, the display will be "Differs" - even if they are binary equal (since no CRC was done to prove this).

If you use the "Ignore CRC" option, then files that have CRC differences will be marked as "Same", except if the Size are different - and you didn't use "Ignore Size" !

3. The footer

It just indicates the end of the listing, and displays the number of files listed.


Features

Since this is a comparison program, you will probably want to know how TreeDiff compares two sets of files, what you get after comparison, and what you can do with this :

1. Keys of comparison

The keys of comparison are : Path+Name, CRC, Date and Size.

Name : If two names of the sets don't match, either one file has been inserted in the new or old set, either one has been deleted, depending on the order you specified for the comparison.

If the -r option is specified, the full relative filename must match for two file to match.

When two files are found both in the 2 sets, a more precise comparison occurs. The keys for comparison between two files that have the same relative filename are :

CRC  : The most accurate CRC method is used to know if files are absolutely identical or not.
CRC is either taken from the archive, or calculated from the files in the case of a directory.
32-bit CRC is the default for comparing.

Note : if one of the sets is an archive of type LZH, LHA, ARC or ZOO, then a 16-bit CRC calculation is performed on files, to match the CRC that these archives use.

If you compare one archive which uses a 16-bit CRC and an other archive which uses a 32-bit CRC, then their respective CRC can't match : the Quick mode is then automatically set to ON. (CRC are not compared, comparison relies only on date/size).
In this case, the only way to compare these archives with a CRC is to extract one of these to a temporary directory, and then compare this directory to the unextracted remaining archive.

If the Quick option is set (CRC deactivated), no CRC calculation occurs, and files are assumed identical unless date or size is different.

Date :  To know which one is the oldest file, and the newest (Date and Time are both used).

Size :  To know which one is the biggest file, and the smallest.

After comparison is done, the two sets of files are displayed in a scrolling grid, showing differences, if any, with colors.

Now that what makes differences between files is clear, let's see what you can do with TreeDiff, or... what TreeDiff can do for you :

2. What you get / what you can do

Once comparison is made, or once a list has been generated, the files are displayed in the main window, showing the differences if applicable.

There are now several things you can do :

a. First, you can apply filters, using the Options dialog, to obtain exactly the information you need. See Filters, Options dialog for more information.
b. Save the result of comparison in a text file. (*.DIF)
c. Save the list in a list file, that can be re-used later as a source for TreeDiff or a third-party program. (*.LST)
d. Save a batch file, using the result of comparison or the list on screen (*.BAT). See the Batch page of the Options dialog.
e. Perform file operations, like Copy, Move or Delete on the files you highlighted in the main window.

See Using TreeDiff for more information on how to use TreeDiff.


Using TreeDiff

Note : If you just want to compare two directories, jump directly to Quick start with TreeDiff

First, since you want to compare 2 sets of file, the first thing you have to do is to specify thoses two sets. The following toolbar is here for this purpose. You can notice that the button 'Diff' is deactivated ; this is because nothing has been selected to compare yet.

When comparing two sets of files, there is almost everytime a chronological relation between thoses two sets : there is an OLD set of files, and a NEW set of files.
The Old set represent the original, the reference, from what you compare to. The New set represent an evolution of the previous set, and what you would like to see, is 'What are the differences between these two sets ?', can I filter out the information I don't need ?. This is the main purpose of TreeDiff.

First, choose the New set of files. This can be a directory, an archive (a ZIP file for exampe), or a previously saved list.

Choosing the NEW set and the OLD set of files to compare :

If you choose a directory for the new set, click on the button [image], otherwise, if it's an archive or a list, click on [image].

As you can already notice, the two left buttons on the toolbar are for choosing a NEW set, and the two right buttons are for choosing an OLD set.

But let's concentrate first on the NEW set. Clicking on 'NewDir' brings an 'Open NEW directory' dialog box, where you can choose the NEW directory. Clicking on 'NewArc' brings the 'Open NEW archive/list' dialog box, where you can choose lists, ZIP files, etc.

Note : If you used command-line parameters, including the sets to compare, these parameters are parsed when TreeDiff is launched: the program checks if the archive or directory or list that you specified exists. (to prevent an error after some precious seconds of calculation).

Optional steps before comparison

At any moment you can define some options, using any command in the Options menu, which brings the Options dialog box. But only a few options have to be specified before comparison. These are :

Scan subdirectories
Calculate CRC
Include Hidden files
Include System files
Wildcards

All these options have in common that they apply to the scanning process. The rest of the options can be set after comparison because they apply to the informations that are stored in memory.

After the NEW set and the OLD set have been defined, and the options are set, TreeDiff determine if a 32-bit or 16-bit CRC calculation will occur (or no crc, if deactivated).

Then, it analyzes the NEW set, and then the OLD set.

Three choices, concerning each set of file :

a. If it's a directory :

The directory tree is scanned for files. If applicable, sub-directories are also scanned. If CRC is not deactivated, it is calculated during scanning.
The information for each file is then compared to the rest of files, and stored in memory.

b. If it's an archive :

The archive file is scanned for files directly (no external stuff, TreeDiff handles directly archives). Since all the necessary informations are already calculated by the archiver and stored in the archive itself, there's nothing to compute (i.e. the crc is already there).
The information for each file is then compared to the rest of files, and stored in memory.

c. If it's a list:

The list is opened, and scanned like an archiver output. The only difference is that since BOTH the 16 and 32 bits CRC can be present, the CRC choosen is the one that correspond the best to the other set of file to compare to. (the most accurate is used).
The information for each file is then compared to the rest of files, and stored in memory.

After all the files have been read in memory (the NEW set and the OLD set of files), the sorted list of all files is displayed on screen.

Note : Using automatic mode, you can save the result to a file ; you can use this facility to re_use the with a finder program (FIND, GREP), or a viewer program (VIEW, LIST), or any program of your choice that could use the data.

Note : If any difference is found, in the set of files selected by the filters, the DOS ERRORLEVEL (or DOS exit code) is set to 2. You can then test this in a batch file, if you use TreeDiff in an automated process.

After choosing the two sets to compare, you can initiate the comparison : just click on the [image] button, which is now enabled.

You'll see then a dialog showing the comparison progress ; the new set is scanned first, then the old set. After, filters are applyed.

Then, the result is displayed on screen, showing differences.

You can then use the Options dialog box, to specify what you exactly want to see, or quit, or save the result to a file, or start a new comparison, if you specify new sets to compare.

Here is an example of screen you can obtain with TreeDiff :


Requirements

Any version of Windows 3.x, Windows 95, Windows NT !

A color adapter to 'see' the colors that illustrate changes.

TreeDiff is compiled for 80386 and above systems - including, YES, Pentium processor machines !


Limits

What limits ?

Thanks to an effective way of storing information in memory, TreeDiff can handle over 268,000,000 files in memory at the same time !

This means that if you compare two sets that are absolutely different, you can compare over 268,000,000 files. If the two sets are not so different, (the PATHs are not completely different between the two sets), you can then compare over 536,000,000 files !  This is much more than current networks or PC systems can handle these days.

Note concerning the archives : If you didn't check the Scan sub-directories checkbox, the files containing a path in their name are not included in the comparison. Only the files in the main directory of the archive are scanned.  However, a warning will be displayed if a directory path is found in an archive, and if you didn't check scan sub-directories  - so you know what is going on.

The clipboard buffer size for Edit|Copy is 32kb. If you select more filenames that can fit in these 32kb, TreeDiff displays a warning, and offers you to copy only the first 32kb to the clipboard.


Remarks

I made my possible to make this program free of bugs, through many stress tests, and beta tests performed by external people. TreeDiff is already used extensively by several persons in different companies - including mine, of course !

But if ever something is wrong with TreeDiff, please tell me. I'll fix it ASAP. See Author information.

TreeDiff is written in Object Pascal and Assembly, using Borland Delphi 1.02.


Disclaimer

If you use TreeDiff for comparing directory trees, there is really no possibility for this program to damage your data; but when a program copy or move or delete files from your disks (you can do this using TreeDiff), there is always a risk of loss of data. So here is the usual disclaimer message :

As a shareware program, TreeDiff is distributed as-is.

The author disclaims all warranties, expressed or implied.

The author will assume no liability for damages either from the direct use of this product or as a consequence of its use.

ZIP, ARJ, ZOO, PAK, LZH, LHA are copyrighted by their respective authors. Borland Pascal and Delphi are Copyright Borland International.


Distribution files

File distribution list :

FILE_ID.DIZ
README.TXT
TREEDIFF.EXE
TREEDIFF.HLP
REGISTER.TXT

These files are the complete TreeDiff package. If you don't have all of them, you should get the full package.
See How to get the latest version for details.


Registration/Author

Registration / Author information

You can use TreeDiff free of charge during an evaluation period of 21 days, so you can check that the software meets your need.

If you like this program, and plan to use it after the 21 days evaluation period, you must register, using the included Registration form.

I make many tools for my own professionnal use, (this one helps me a lot in my everyday work!) and it is very pleasant to know that these tools are useful to other people, in other companies.

There are 3 versions of TreeDiff : The shareware version, the regular version, and the PRO version.
You already own at least the shareware version, if you can read this help screen.
The regular version allows you to compare an unlimited amount of files, but only testdrive the other features of the PRO version. See below.

The PRO version adds the following features (compared to Regular version) :
- Unlimited Filters.
- Unlimited Saved batch files from differences found, for automated processing - used in conjonction with Filters, this gives more power to TreeDiff..
- Unlimited File operations.

Why register ?

Several good reasons :

1. You'll get several more options : more files displayed, more powerful options unlocked.

The unregistered version of TreeDiff won't display more than a given amount of files, much enough for testing the product, and have a good idea of its possibilities. Filters will be available for only this amount of files, and deactivated if more files are read. Same for batch files and file operations.

TreeDiff, regular REGISTERED version, has no limit on the amount of files compared and displayed, but filters, batch functionality and file operations are disabled if a fixed amount of files is reached. This allows you to test the functionality of the PRO version with the REGULAR version.

TreeDiff PRO offers all the fonctionalities, and is not limited at all :

  - Filters, to filter out the results of comparison, and display only what is necessary to display, not all the files. This is useful when you compare over 200.000.000 of files, and only 234 files are different !!

  - Automatically generated Batch files. In conjonction with filters, this allows you to generate a custom batch file, for the files you specified with the Filters.

  - File operations, which allows you to perform file operations on the selected files, like Copy, Move or Delete.

2. I'll spend more time to update TreeDiff, and add features - according to your requests or suggestions.

3. Registration price is cheap : $40 for a single user ($80 for PRO) - see the registration form for details, and multi-user offer.

4. Above all this, you'll feel much better using registered software.

How to pay ?

You can send directly cash (bank notes) to me, by mail, if you use US dollars (USD) or French francs. That's the way I prefer, because it's quick, and I don't have to go to my post office over the week-end.

You can use international postal money order. This costs you about $10 at your post office.

You can send check if the currency is FRENCH FRANCS.

Please don't send bank checks that are not in french francs, since I have to pay $40 to have them paid at my bank !
Otherwise, please add $40 to the amount. Only US Dollar checks accepted (or french francs).

Sorry, I can't accept credit cards, or other way of payment not listed above.

Registration process

You can print the REGISTER.TXT form included in the TreeDiff package, or go to the Registration form help screen and print it using Windows Help's File|Print topic menu command.

I made this registration form for your convenience ; you can print it, fill-in the blank fields, and send it to me along with your payment. Please note that I really prefer cash before any other way.

After I receive your registration, I send you back your personal serial number, that turns your shareware version of the program to a registered version, with full fonctionality, depending on the type of registration you chose. If you indicate an e-mail address, I can send it via e-mail. Otherwise I send the serial number via postal mail to the address you indicated in the REGISTER.TXT form. It's that easy !

My postal mail address :

Christophe Dubourg
23, rue Victor Hugo
78370 PLAISIR
FRANCE

Even if you don't send money, please feel free to send me your remarks, suggestions, and specific problems encountered with this program.

It will be a pleasure to read your mail and to answer it !

Don't hesitate to contact me, at the following addresses (in order of preference) :

Internet :
cdubourg@wpo.borland.com
or 	73233,1412@compuserve.com

Compuserve :
73233,1412 (Christophe Dubourg)

Check the latest information on my programs and download the latest version, looking at my home WEB page :

http://ourworld.compuserve.com/homepages/cdubourg

Thank you for using TreeDiff !


You are french ? read this

Vous êtes français ?

L'objet de cette section est de vous inviter à vous enregistrer avec de la monnaie un peu plus pratique que le dollar US, c'est-à-dire le franc français.

J'ai fixé le prix minimum de TreeDiff à $40, soit environ 200 FF. (et $80, soit 400FF pour la version PRO)

En ce qui concerne les enregistrements pour plusieurs utilisateurs, veuillez utiliser le fichier REGISTER.TXT, ou imprimer le formulaire d'enregistrement avec la commande Fichier|Imprimer la rubrique du système d'aide Windows, et multiplier le prix en dollars par 5. Pour plus d'informations sur le processus d'enregistrement, et les avantages proposés, consultez la section Registration/author.

Merci d'utiliser TreeDiff, et n'hésitez pas à le conseiller à vos connaissances si vous l'appréciez. N'hésitez pas non plus à m'envoyer du courrier électronique ou postal en français !

Cordialement,
Christophe Dubourg.

e-mail : cdubourg@wpo.borland.com

Si vous avez accès à Internet, vous pouvez trouver la dernière version ainsi que d'autres informations sur ma page WEB personnelle : http://ourworld.compuserve.com/homepages/cdubourg


Options|Filters

Filters

See also : Options dialog box

Here is the main Filters dialog : to obtain it, use the menu command Options|Filters :

As you can see, there are two main areas for filters : the Exclude filter and the Ignore diffs on areas. Both are described below.

Additionnaly, there is an extra button in this dialog : Switch. It is described just after.

Exclude filter

This allows you to specify what kind of files you would like to exclude from the display. The files corresponding to what you specify here, won't be displayed. here is an explanation of each check box :

- All identical : Checking this box exclude all the identical files from the display : what is remaining is the files that have differences. Identical means that nothing in the criterias is different : CRC is the same, but also the date, the time, and the size. Except if you ignored one or more of these criterias. See below for this area.

- Any difference : This is the opposite of the preceding option ; checking this box exclude all the files that have any difference : any difference in any of the criterias : CRC, date, time, size. Except if you ignored one or more of these criterias. See below for this area.

Note : When you click on this box, this activates all the boxes under it, that represents all the criterias. If you want to be more selective, just uncheck some of them. Here they are :

- CRC Different : This exclude the files where the CRC is different, if you didn't ignore this criteria.
Note : If you didn't calculate the CRC (ie, if you unchecked this option in the 'User' page), this won't do anything.

- Inserted : This exclude the files that are inserted. You can this way concentrate on the files that are not Inserted. (or not new, if you prefer).

- Deleted : Same, for deleted files. If you check both Inserted and Deleted, you'll obtain the list of the files that match in both sets.

- Newer : This exclude the files that are Newer in the new set. (the one on the left). A file is newer, when the date and time are ulterior to the date and time of the equivalent file in the old set (the one on the right).

- Older : Same, for older files.

- Bigger : This exclude the files that have a greater size in the new set than the matching file in the old set. To see the files that have grown, for instance.

- Smaller : Same, for smaller files.

Ignore diffs on

This area allows you to specify what criterias you don't want to take care of.
In conjonction with the All identical and Any difference check boxes, you can filter out exactly what you want. The criterias are :

- CRC : Ignore the differences that may exist in the CRC of two matching files.

Warning : If you deactivate this check box, the filtered display will rely on the remaining criterias, that are date and time, and size. See examples below.

- Date and time : Ignore the differences that may exists on date and time. Useful if you have some programs that always 'touch' the files (change the date) without really modifying them.
This way, you decide to not rely on the date and time information for comparing.

- Size : Ignore the diffferences on size, for matching files.

Switch

This is a 'magical' button, that reverse the meaning of the filters dialog, or more precisely, the way you specify what you want to include/exclude - if you don't like the idea of 'excluding' files, you'll probably prefer the concept of 'Including' files.

When you click on this button, instead of specifying what to exclude, you specify what to include.

The result is the same, but the way you understand it is different. The state of this button is saved if you click on the 'Save' button. Try it out, it doesn't hurt !

Note : Filters are fully fonctionnal only in the PRO version.


Options|Batch

Batch options

See also : Options dialog box

In this page you specify how you want the batch file to be generated. A batch file can be generated using the menu command : File|Save new/old batch file.

In the batch file generated, a line is created for each file showing in the main window. So, the batch file correspond to the filetered output you "see" on screen.

Options :
Drive : include drive letter of the new set before each filename.
Path : include path before each filename.

Full / Relative : if you checked the Path box, this determine if you want the full specified path added, or just the relative path, starting from the directory you specified.

Extension : include file extension for each filename.

Note : a sample at the bottom of the dialog show what the lines generated will look like ; this example is dynamic : it shows immediately the changes you make in this dialog page.


P_NewSetOfFiles
A set of files is either :

- A directory
- An archive (*.ZIP, etc.)
- A list (*.LST)

Each of these contains files, that can be
compared to files in an other set of files.


Options dialog box

This dialog box show alls options available for customizing the behavior of TreeDiff.

If you specified arguments on the command line, corresponding options are set automatically in the Options dialog box pages.

There are several pages in the dialog, that group the options by category :

You can save almost all options in the file WIN.INI using the Save Button, so the same options are kept when you run TreeDiff later.

The options pages are :

Scanning	These options must be set before scanning sets of files
User	Define the user preferences
Batch	Generated batch files options
Saving	Saved Diff and List files options
Display	Display options (colors, fonts, date format ...)
Filters	Filters to apply on compared files.


Output file

When you use the automatic mode, TreeDiff directly outputs the result of comparison in the file you specified either in the Options|User dialog, either on command line, using the /O parameter.

This option is related to batch files.


Command line examples

If you want to use TreeDiff in a batch file, you'll have to use command line arguments to specify what you want to obtain.

Here are some examples :

1.	TREEDIFF NEWARC.ZIP OLDARC.ARJ

This compares the 2 archives, and display the result on screen, in double column format and with colors.  (if the archive contains sub-dirs, they are not included, since no -r parameter is there - instead, you'll obtain a warning while running ZDiff).

2.	TREEDIFF /A /R NEWARC.ARJ C:\TEMP\OLDDIR /ODIFF.TXT

This compares the new archive NEWARC.ARJ to the directory C:\TEMP\OLDDIR, the subdirectories are scanned (/R) and the result is redirected to DIFF.TXT (/O) so that DIFF.TXT contains the printable result of comparison.

3.	TREEDIFF /r NEWARC.ZIP OLDDIR *.DOC /XIDO

This displays all the NEW files (/XIDO excludes Inserted, Deleted and Older files) in NEWARC.ZIP, compared to the OLDDIR directory files. Subdirectories are scanned, too. Only the .DOC files are processed.

4.	TREEDIFF NEWZIP.EXE . -r -q -c1 /1zip

This displays the differences between the archive NEWZIP.EXE (/1zip tells ZDiff that it's a ZIP archive) and the current directory. The subdirectories are scanned, too, (-r) both in the archive and the directory.
A Quick scan (-q) of directories files will be made (no CRC), so the comparison will be based on date, time and size only. The date format used is the EUROPEAN date format (-c1 means DD/MM/YY date format).

5.	TREEDIFF . -r OLDARC.LHA /d /q -m

This displays the differences between the current directory and the archive OLDARC.LHA. Subdirs (-r) are scanned also. Only the differences are shown (/d), and no CRC is calculated (/q). Only the matching files (-m) of the two sets are displayed.

6.	TREEDIFF -A -L \BIN /OMASTER.LST

This outputs in MASTER.LST the list of files in the \BIN directory, along with their date, time, 16-bit and 32-bit CRC, and size. For later comparison purpose.
(later, you'll use MASTER.LST as one of two sets to compare).
/A tells ZDiff to do the comparison, save the result in MASTER.LST (/O) and quit, all automatically.

7.	TREEDIFF LATEST.ZIP MASTER.LST -d

This displays the differences between the latest product zipped in LATEST.ZIP, and the master list generated by the previous example.


Options|User

User options

See also : Options dialog box

This page let you define your preferences for TreeDiff behaviour :

Start comparison if files in command line : By default, TreeDiff don't start immediately the scanning process, even when command line parameters are defined. You have to click on the "Diff" button or "Action|Generate list" menu option to really start the scanning process.
Check this box if you want TreeDiff to process files passed on command line without user intervention.

After reading

This section defines the behaviour of TreeDiff just after that sets of files has been read, and before that the result is displayed.

Close progress dialog : check this box if you want the Progress dialog, that is displayed while TreeDiff is scanning files, to be closed right after the scanning process is complete.
The default is to leave the Progress dialog on screen, showing the completed operation.

Show status dialog : check this box if you want the Status dialog displayed after the scanning process. This dialog, available through the Help|Status menu, shows general status information on the latest comparison.

Filter options

Clear filters when new comparison : Default. When a new comparison occurs, filters are cleared. This is to prevent a erroneous interpretation of results, if filters were not desired for this last comparison.

Filter active for : Check the appropriate box : Saved diff files and/or Print. By default, filters are active for screen display, saved diff files, and printed results, unless you uncheck these check boxes.


ReadingSaved

Reading saved files

You can save two kind of files, depending on the action you made, and the kind of file you need. There is List files, and Diff files. Both are text files, the difference is the contents.

1. List files

If you generated a LIST from files, you can only save a list file (*.LST).

See : Reading LIST files.

2. Diff files

If you did a comparison, you can either save the list of the new or old set or files, either save the result of the comparison.

See : Reading DIFF files.


P_relative filename
The relative filename is the pathname,
starting from where the directory was
scanned.

Example : if you scanned a directory C:\SRC
(using command line TREEDIFF C:\SRC /R /L),
the relative filename of the file
"C:\SRC\BACKUP\MAIN.ASM" is :

"BACKUP\MAIN.ASM".


Options|Scanning

Scanning options

See also : Options dialog box

Include mask :

This is where you specify what files you want to include in comparison. Default is "*.*", which means that you want to include all the files. All the files that match this file specification will be scanned in archives, directories, and lists..
You can specify only one file specification in this edit box.
The contents of this edit box is not saved in the configuration file. It is cleared each time you run TreeDiff.

Exclude mask :

This is where you specify what files you want to exclude from comparison. Default is blank, which means that you don't want to exclude any file from comparison.
All the files that match one or more of these file specifications won't be scanned, so they won't appear in lists or comparisons you make.
You can specify up to 16 file specifications in this edit box, separated by ";".

Example : "*.BAK;*.ZIP;*.OLD;ST*.*"

The contents of this edit box is not saved in the configuration file. It is cleared each time you run TreeDiff.

Scan Subdirectories

This option allows TreeDiff to search for files that resides in sub-directories of the path you specified.

Example :

If you specified C:\TEMP as the new set of files, TreeDiff will scan all files of this directory.
If some subdirectories are found in C:\TEMP, like C:\TEMP\TABLES, and you activated the 'Scan subdirectories' checkbox, then TreeDiff will go and scan all the files C:\TEMP\TABLES as well, and in any sub-directories found under C:\TEMP\TABLES, and so on.

If you didn't activate the checkbox, then TreeDiff only scans the directory you specified for files, or the main directory of archives.

Ignore Path

If you checked the Scan subdirectories check box, this check box allows you to ignore the path names from files. This is useful if you want to compare two very different trees, with same files inside subdirectories.

Calculate CRC

By default, TreeDiff calculates a CRC for each file. This is the way TreeDiff compare files that have the same name. The CRC calculation routine is written in assembly language for the best possible speed. However, in case of huge files, or on slow machines, this can take a while. Uncheck this box if you don't want to calculate the CRC.
Caution : When no CRC information is present for files, TreeDiff can only rely on the date and size information to differentiate files. Files that are binary different, but with same date and size won't be showed as different. Uncheck this box with caution.

Pause

If you activate this box, you will be prompted before each set of file is processed. This is useful for removeable media (diskettes, but also removeable hard disks, CD, Optical disks, ZIP drives, etc). The purpose of this is to be able to compare two sets that resides on the same drive, but with different media.

System files

Check this box if you want to include in comparison the files that have the attribute 'System' set.

Hidden files

Check this box if you want to include in comparison the files that have the attribute 'Hidden' set.

Hidden directories

Check this box if you want to include in comparison the files that are stored in Hidden directories and System directories - the directories that have the attribute "Hidden" or "System" set. Windows 95 uses hidden directories for shortcuts, backups, system files, etc.

Skip files errors

When an error occurs while TreeDiff opens or reads a file, the user is prompted for retrying, aborting, skipping the file, or skipping all the following files that have problems.

Check this option if you don't want to be prompted on errors. Files with errors will be skipped automatically, and won't be accessed on disk. The necessary informations for these files will be set to default values (Null CRC). See also "Exclude error files" below.

Exclude error files

When an error occurs on a file, because it's a system file, or used by an other process or program, TreeDiff uses default values and store the information for this file anyway, so it can be compared.
If you prefer to exclude from comparison the files that have an error, check this checkbox.


Quick Start

Quick Starting with TreeDiff

TreeDiff compares file directories, ZIP archives, and lists of files.

In order to compare directories, you have to specify 2 directories :

1. Select the new (latest, or modified) directory, clicking on the [image] speedbutton.

2. Select the old (oldest, or base, or reference) directory, clicking on the [image] speedbutton.

3. Click on the [image] speedbutton.

After a moment, the results appears in the main window, the colors showing the differences. See the Legend for explanations.

That's all !

For full explanations, see Using TreeDiff


ReadingSavedList

Reading saved lists (*.LST)

When you save a list file, using the File|Save New/Old List file menu option, or using the /O option with the /A Automatic option, you obtain a text file, listing all what you could see in the scrolling window.

This LIST file is made of three parts :
- The header
- The body
- The footer

1. The header

The header is at the top of the text file, and contains several information, useful to the human eyes, and the program itself - since list files can be re-used as input for other comparisons.

Informations displayed here are :
The files or directories that were listed, the file pattern used, the options used, the date and time of generation..

2. The body

The body contains the list of files, along with all the necessary information for a future comparison. Along with each filename, there is : size, date and time, crc (16-bits and/or 32-bits), and path.

3. The footer

It just indicates the end of the listing, and displays the number of files listed.


File information

This dialog shows information about the selected file, or the first file of the selected block.

If the file exists in both the new and the old set of files, you can see the information for the new and the old file simultaneously.

Explanation of the comparison status letters :
Each symbol indicates a possible status, activated (if black) or not (if gray) :

=	Files are identical
C	Crc difference between files
I	Inserted file
D	Deleted file
N	Date is Newer
O	Date is Older
B	Size is Bigger
S	Size is Smaller

In the above example, the 2 files compared have different CRCs (they are binary different), the file from the New set is Newer (N), and Bigger (B).


File type

This dialog prompts you for a file type when TreeDiff can't determine the type file you want to open, because it doesn't know the extension, or the extension is not the usual extension for this kind of file.

This is particularly useful for self-extracting archives, such as EXE files generated by WinZIP or PKZIP. The extension of such files is .EXE, so TreeDiff can't know that it is ZIP files.

With this version of TreeDiff you can only choose from ZIP files, and LST (TreeDiff lists) files. Other archive formats are not yet supported.


Open directory

Use this dialog to navigate and select the directory you want to compare to, or the directory you want to generate a list from..
The files contained in the directory are also displayed, for information only.

For example, after you have selected a NEW directory, you can select an OLD directory to compare to, or select an OLD archive file, or an OLD list file.


Open archive/list

Use this dialog to navigate and select the archive file or list file you want to compare to.

For example, after you have selected a NEW directory, you can select an OLD directory to compare to, or select an OLD archive file, or an OLD list file.


Comparison status

This dialog show the status of the latest comparison (the files that are currently in memory).

The file count is indicated for each category of differences. This can be useful if used with the filter options dialog.

If sub-directories were found in any of the set of files, and you didn't check the Scan subdirectories option, a warning is displayed, indicating that only the files in the main directory were scanned, not the files in the subdirectories.


Registration form

                 TreeDiff 1.0 REGISTRATION FORM

                   Date :  ______/______/______

TO:        Christophe Dubourg

           23, rue Victor Hugo

           78370 PLAISIR

           FRANCE

-------------------------------------------------------------

FROM:

             Name: __________________________________________

    Compuserve Id: __________________________________________

   e-mail address: __________________________________________

[Company / Title]: __________________________________________

          Address: __________________________________________

                   __________________________________________

State / Zip code : ______________________ Country : _________

-------------------------------------------------------------

 Please check the appropriate box(es), and fill the fields :

 [ ]  TreeDiff on 1 computer .....................  = $____40

 [ ]  TreeDiff PRO on 1 computer .................  = $____80

 [ ]  TreeDiff PRO on 2 computers ................  = $___140

 [ ]  TreeDiff PRO on 3 computers ................  = $___180

 [ ]  TreeDiff PRO on 4 computers ................  = $___220

 [ ]  Site licence (*) ...........................  = $___260

      (*) Site licence is : unlimited number of

      copies of TreeDiff PRO used in one company.

-------------------------------------------------------------

 [ ]  If check not in French Francs, please add ..... $____40

      (this is bank fees)

                                             TOTAL  = $______

-------------------------------------------------------------

PLEASE INCLUDE THIS FORM WITH YOUR *CASH* OR INTERNATIONAL

POSTAL MONEY ORDER (or your USD CHECK if $40 fees included)


Lists

1. Definition
2. Sample list on TreeDiff screen
3. Sample list (text file)

See also Reading Saved LISTS files

Lists are text files, generated by TreeDiff, that contains all the necessary informations on files to compare later.

The purpose of lists is to take a snapshot of a directory structure, at a given moment. After this snapshot is taken, and files are modified, you can compare the actual directory files to the previously generated list.

The advantage of lists :
1. Since everything is already calculated in lists, lists are amazingly fast to scan, compared to directories.
2. Lists are small files, that don't waste precious disk space.
3. Lists are smaller than ZIP files. (they don't contains the actual file data, just the CRC that allows to do a secure comparison).
4. Lists can be edited manually, or by an automatic program to fit your needs (this is bare text files).

The informations stored in lists for each file are :

- The filename, including path
- The date and time of modification
- The size
- The 16-bits CRC
- The 32-bit CRC

Here's how TreeDiff looks like after you generated a list :

After you saved the list that is illustrated on the screenshot above, the text file that is generated looks like the following : (the file has been edited, I removed about 1000 lines in the middle for this example).
As you can see, all the information that could be obtained from files is stored here. Please note that the date information is stored independently of any international format, so lists can be shared between different persons living in different countries.
The first lines, starting with dots, are comments for the user eyes, except the directory information, which is used by TreeDiff to indicate on screen where the files come from, when a list is opened.
The very first line, [ZDiff LIST] is here to indicate the LIST format, so TreeDiff know that this is a list. I kept the name of [ZDiff LIST] because of my DOS tree comparison program (ZDIFF) that also uses and generates lists, that are compatible with TreeDiff.
For more informations on LISTS, see Reading Saved lists files.

[ZDiff LIST]

.Source (DIRECTORY) : C:\DELPHI\

.File pattern       : *.*

.Exclude mask       : J*.*;K*.*

.Recursed dirs      : Yes      Path stripped : No

.Source format      : 6 (DIR)

.Quick mode         : No

.Generated on       : 03/25/96 16:16:07

Size       Date     Time     CR16 CRC32    Filename

---------- -------- -------- ---- -------- ------------

     16576 95.09.07 08:02:00 F9D2 B2A4F513 DISTRIB.TXT

     13567 95.09.07 08:02:00 77A1 EEEE6ADD INSTALL.TXT

     30397 95.09.07 08:02:00 216A 7DF2F1F3 LISEZMOI.TXT

     18650 95.09.07 08:02:00 5F43 71977222 MANUELS.TXT

       208 95.09.07 08:02:00 E382 7FC97CEF REDIST.TXT

     21888 95.09.07 08:02:00 0D9E B29A9CEC UNPAQ.EXE

    691840 95.09.07 08:02:00 6197 89574AE9 BIN\BCBTBPWL.DLL

    771328 95.09.07 08:02:00 552E 5CAF2BEA BIN\BCBTBPWS.DLL

     75536 95.09.07 08:02:00 2A4A 085BF495 BIN\BCBTRES.DLL

      6506 95.09.07 08:02:00 AE84 41E5D38B BIN\BERRMGR.DLL

     29728 95.09.07 08:02:00 B735 4C467132 BIN\BEVTAPP.DLL

     77936 95.09.07 08:02:00 FB01 70571AC3 BIN\BEVTMGR.DLL

     45760 95.09.07 08:02:00 755B 7BB15C5A BIN\BEVTWIN.DLL

      9168 95.09.07 08:02:00 54F3 FFEDF1B0 BIN\BOXMGR.DLL

     33168 95.09.07 08:02:00 A45C 53FCF686 BIN\BRC.EXE

<-------- this is a sample. I cut many lines here -------->

      8454 95.09.07 08:02:00 B7E3 889D577C SOURCE\VCL\TOOLINTF.PAS

       979 95.09.07 08:02:00 DCED A3287D48 SOURCE\VCL\VBXMSG.RC

       639 95.09.07 08:02:00 F55D 0687D530 SOURCE\VCL\VBXMSG.RES

       141 95.09.07 08:02:00 ED5D C2131597 SOURCE\VCL\VCL.INC

      3538 95.09.07 08:02:00 C7E2 32EFB10F SOURCE\VCL\VCSINTF.PAS

      1838 95.09.07 08:02:00 EBF6 F4F2FC12 SOURCE\VCL\VIRTINTF.PAS

---------- -------- -------- ---- -------- ------------

1080 files listed.


ZDIFF

ZDiff is a DOS program I made before TreeDiff, that has the same purpose as TreeDiff, but under the DOS environment. It is more limited, compared to TreeDiff. ZDiff is also a shareware program, that can be downloaded in several places :

The filename for ZDiff is ZDIFF22.ZIP, or ZDIFF23.ZIP (the latest version is 2.3, but.it's not yet everywhere)

My personal WEB page : http://ourworld.compuserve.com/homepages/cdubourg

Compuserve : Forum PC Utilities/Systems (Go CIS:PCUTIL), Section "File utilities", file ZDIFF22.ZIP.

On the Coast to Coast repository, (www.coast.net), as ftp://ftp.coast.net/SimTel/msdos/dirutil/zdiff22.zip

... and also on several CD-ROM shareware collections (PSL, Simtel, DPTool Club, etc).

The LATEST version is always on my personnal WEB page on Compuserve.


Archive files

Currently, TreeDiff only handle ZIP archives, either under the ZIP flename, either ZIP auto-extractable files. (.EXE files that auto-extract themselves).

Other common archives, like ARJ, LHA, PAK, ARC, ZOO, UC2, RAR, are not yet implemented. I'll do it if I have a good feedback from users on TreeDiff, and enough demands.

See also : Opening archives/lists, and Lists.


ZIP files
ZIP files are archive files created and maintained

by PKZIP, WinZip or an equivalent program.

PKZIP is Copyright PKWARE, Inc.
WinZip is Copyright Nico Mak Computing, Inc.


File operations

After you selected files in the main window, and called the menu option Edit|File operations..., or called the equivalent popup menu (with mouse right-click), you obtain the following dialog box, which allows you to choose an action to take for the selected files, and to specify a destination :

On this picture, the pulldown menu Action is selected so you can see the 3 types of action you can do with the selected files : Copy, Move, or Delete.

Right after the Action pulldown menu, the number of selected files is displayed. (3 in this example).

The next line displays the first files you selected, so you can quickly check that these correspond to the selection you needed.

The From field is readonly, and displays the source of the files. This correspond to either the Old set, either the New set, depending in which column you selected the files.

The To field is where you specify the destination for the files. This field is available for Copying or Moving. For Deleting, you don't need a destination so the field is hidden.
You can either type in the desired destination, or click on the Select button to obtain the dialog box for selecting a directory.

The Prompt on replace check box allows you to specify if you want to be prompted before a file is overwritten during the Copy/move operation.

The Skip files with errors check box allows you to tell TreeDiff to skip the files that cannot be opened, or accessed while copying or moving. Use with caution, since you won't even be notified of such errors. The default is to leave this check box unchecked, so TreeDiff prompts you with a dialog box in case of error.

Once you click on the OK button, the file operation starts immediately.
Use file operations with caution, you won't be prompted for replacing existing files, if you unchecked the corresponding checkbox !


Latest version

The latest version of TreeDiff can be obtained from my personal WEB page, on the Internet :

http://ourworld.compuserve.com/homepages/cdubourg

I also upload TreeDiff to the Coast-To-Coast software repository (SimTel) :

http://www.coast.net/SimTel

On Compuserve :

PC Utilities/Systems (CIS:PCUTIL)
in the library "File utilities", or search for the string "TreeDiff"

TreeDiff can also be found on shareware CD-ROMs, or other shareware sites on the Internet or BBS systems. But remember that the latest version can always be found on my personal WEB page !

If you have any question or comment, please send me an e-mail :

cdubourg@wpo.borland.com

(or 73233,1412 on Compuserve)

See also : Registration/Author, and Distribution files


Options|Saving

See also : Options dialog box

Filenames on 2 columns
This option let you specify how you want the filenames appear in Diff files.

By default, the full path and the filename are displayed on the right side of the output.
If you click this check box, the filenames are displayed on 2 columns, New and Old, like on screen, right after the status info, and the path is displayed on the the right side of the output.

Abbreviate status
By default, in Diff files, the status is made of words like 'CRC Differs', 'Equal', 'Inserted', and so on.
If you click this check box, the status will be made of single letters, like 'XOB', which means 'X = Different', 'O=Older', 'B=Bigger'.
This allows a shorter output.

Include size
This displays the sizes for both New and Old sets in the Diff file.

Include Date/Time
This displays the Date and time for both New and Old sets in the Diff file.

Include CRC
This displays the CRC for both New and Old sets in the Diff file.

Append Status information
This appends some useful information to the Diff file. This is the same information that appears in the comparison Status dialog.

Confirm before overwriting existing files
Default is to prompt the user when saved files are about to overwrite an existing file. If you don't want to be prompted when you save a file that already exist, uncheck this box.